/**
 * @description adviceModel Service
 */

 const { adviceModel } = require('../db/index')
 const Op = require('sequelize').Op

 async function addData(params) {
   console.log(params)
   const result = await adviceModel.create(params)
   const data = result.dataValues
   return data
 }
 
 /**
  * 
  * @param {string} username 用户名 
  */
 async function getUserInfo(username) {
   // 查询条件
   const whereOption = {
    username
   }
   const result = await adviceModel.findOne({
     where: whereOption
   })
   console.log('getUserInfo', result)
   if (result === null) {
     return result
   }
   return result.dataValues
 }
 
 /**
  * 修改用户信息
  * @param {*} param0 要修改的用户信息
  * @param {*} param1 查询条件
  */
 async function updateData(
   params,
   id
 ) {
   // 拼接修改内容
   const updateObj = params
 
   // 拼接查询条件
   const whereOption = {}
   if (id) {
     whereOption.id = id
   }
 
   // 执行修改
   const result = await adviceModel.update(updateObj, {
     where: whereOption
   })
   return result[0] > 0
 }
 
 /**
  * 删除用户
  * @param {string} userid 用户id 
  */
 async function deleteData(id) {
   const result = await adviceModel.destroy({
     where: {
       id
     }
   })
   return result > 0
 }
 
 /**
  * 分页查询所有用户
  * @param {number} page 当前页码
  * @param {number} pageSize 每页条数
  */
 async function queryAll(params) {
  console.log(params)
  const {
    page = 1,
    pageSize = 10,
    userId,
  } = params
   console.log(userId)
   const whereOption = {}
   if (userId) {
    whereOption.userId = userId
   }
   const result = await adviceModel.findAll({
    limit: pageSize,
    offset: (page - 1) * pageSize,
    where: whereOption
   })
   const total = await adviceModel.findAll({
    where: whereOption
  })
   return {
    total: total.length || 0,
    data: result || []
   }
 }
 
 module.exports = {
  addData,
   getUserInfo,
   updateData,
   deleteData,
   queryAll,
 }
 